//
//  BaseRegisterModel.h
//  Masonry
//
//  Created by Sings on 2019/7/15.
//

#import <Foundation/Foundation.h>


@interface BaseRegisterModel : NSObject
/// window
@property (nonatomic, strong, readonly) UIWindow *window;
/// tableViewCell映射对照表
@property (nonatomic, strong, readonly) NSMutableDictionary *mdicTableCellRouting;
/// collectCell映射对照表
@property (nonatomic, strong, readonly) NSMutableDictionary *mdicCollectCellRouting;
/// tableViewHeaderFooter映射对照表
@property (nonatomic, strong, readonly) NSMutableDictionary *mdicTableHeaderFooterRouting;
/// collectionHeader映射对照表
@property (nonatomic, strong, readonly) NSMutableDictionary *mdicCollectionHeaderFooterRouting;
/// viewController路由对照表
@property (nonatomic, strong, readonly) NSMutableDictionary *mdicViewControllerRouting;
/// view路由对照表
@property (nonatomic, strong, readonly) NSMutableDictionary *mdicViewRouting;
/// button路由对照表
@property (nonatomic, strong, readonly) NSMutableDictionary *mdicButtonRouting;
/// 重复控制器删除 不需要删除对照表
@property (nonatomic, strong, readonly) NSMutableDictionary *mdicNoDeleteControllerRouting;
/// protocol对应的数组
@property (nonatomic, strong, readonly) NSMutableDictionary *mdicProtocolRouting;
/// 主题对照表
@property (nonatomic, strong, readonly) NSMutableDictionary *mdicThemeColorRouting;
/// 主题图片保存路径
@property (nonatomic, copy, readonly) NSString *strThemeFilePath;


+ (instancetype)sharedInstance;

- (void) registerWindow:(UIWindow *) window;

- (void) registerTableCellRouting:(NSMutableDictionary *) mdicTableCellRouting;

- (void) registerCollectCellRouting:(NSMutableDictionary *) mdicCollectCellRouting;

- (void) registerTableHeaderFooterRouting:(NSMutableDictionary *) mdicTableHeaderFooterRouting;

- (void) registerCollectionHeaderFooterRouting:(NSMutableDictionary *) mdicCollectionHeaderFooterRouting;

- (void) registerViewControllerRouting:(NSMutableDictionary *) mdicViewControllerRouting;

- (void) registerViewRouting:(NSMutableDictionary *) mdicViewRouting;

- (void) registerButtonRouting:(NSMutableDictionary *) mdicButtonRouting;

- (void) registerNoDeleteControllerRouting:(NSMutableDictionary *) mdicNoDeleteControllerRouting;

- (void) registerObject:(id) object ToProtocol:(Protocol*) protocol;

- (void) registerThemeColorRouting:(NSMutableDictionary *) mdicThemeColorRouting;

- (void) registerThemeFilePath:(NSString *) filePath;

@end

